This application incorporates by reference Taiwanese application Serial No. 88121610, Filed Dec. 9, 1999.
1. Field of Invention
The present invention relates to a method and system for updating a flash memory of peripheral devices. More particularly, the present invention relates to a method and system for updating a flash memory of peripheral devices in a computer system.
2. Description of Related Art
Peripheral devices of a computer system may contain a flash memory for storing programs to drive it. The flash memory is reprogrammable and the computer system can reprogram, or update, the flash memory when needed. For example, the flash memory needs to be updated when there are bugs in the program stored in the flash memory, or when a new version is released.
There are two methods for updating a flash memory. In one method, the flash memory is first unplugged from the peripheral device, and then put within a programmer for updating. In the other, the flash memory is directly updating without unplugging it from the peripheral device, i.e., the flash memory is updated in circuit.
FIG. 1 shows a block diagram of a conventional system for updating a flash memory of a peripheral device. As shown in FIG. 1, according to the conventional method, a host 100 uses a driver to control a host interface controller 102 and the host interface controller 102 is used for controlling signal transmission between the host 100 and a peripheral device 106 through an interface 104. The interface 104, which may be an integrated device electronics (IDE) interface, connects to a peripheral device 106. The peripheral device 106 can be a hard disk, a compact disc drive such as a CD-ROM, or a digital versatile disc-read only memory (DVD-ROM) drive, etc.
The peripheral device 106 contains a peripheral interface controller 108, a microcontroller unit (microcontroller or MCU) 110, a loader ROM 112 and a flash memory 114. The peripheral interface controller 108 controls signal transmission between the peripheral device 106 and the host 100 trough the interface 104. The peripheral interface controller 108 connects to the MCU 110, the loader ROM 112 and the flash memory 114 within the peripheral device 106. The MCU 110 is used for executing programs stored in the flash memory 114 and controls the peripheral device 106. The loader ROM 112 is used for recording a programming procedure, programming code, and firmware code, all of which are needed during flash memory updating. The flash memory 114 is used for storing programs used for operating the peripheral device 106 under normal circumstances. A loading program used for updating the flash memory is stored in the loader ROM 112 which can be an independent memory block inside or outside the MCU 110. Alternatively, the loading program may be downloaded from the host 100.
Referring to FIGS. 1 and 2, FIG. 2 depicts a flow chart of a conventional method for updating a flash memory. At step 204, the host 100 uses the driver to acknowledge the MCU 110 to update the flash memory 114 th rough the host interface controller 102 and the interface 104. At the step 206, the MCU 110 temporarily suspends current executed command while at the same time, the host 100 transmits a new updated program to the MCU 110 for updating the flash memory 114. The flash memory 114 is then updated by the MCU 110 according to the programming procedure, the programming code, and the firmware code stored in the loader ROM 112.
At step 208, after the flash memory 114 is completed, a checking step is performed to check whether the flash memory 114 has been updated correctly. If the flash memory 114 is not updated correctly, the update procedure repeats step 206 until the flash memory 114 is updated correctly. If the flash memory 114 is updated correctly, the update procedure completes and the MCU 110 then executes the updated content of the flash memory.
Therefore, according to the conventional method, a loader ROM must be used for updating the flash memory, resulting in an increase in the cost. Furthermore, for supporting various types of flash memories in the system, a number of programming procedures and codes for various types of flash memories as well as a program for updating the flash memory must be recorded in the loader ROM. However, if a new release or a new model flash memory is used in the peripheral device 106, the update procedure can not be executed according to the programming procedure, the programming code, and the firmware code stored in the loader ROM 112. Accordingly, a new loader ROM must be installed before the updating of the flash memory can continue, and cost for updating is increased.
The invention provides a system and a method for updating a flash memory of a peripheral device. According to the present invention, no loader ROM is needed in the peripheral device, and the peripheral device does not need to record various programming procedures, programming codes, and firmware codes. The update procedure is entirely executed and controlled by the host. The system or method of the present invention is simple and cost effective and is not limited by differing types of flash memories.
It is therefore an objective of the invention to provide a system for updating a flash memory of a peripheral device. The system includes a host that sends an update content. The peripheral device contains a peripheral interface controller and a flash memory. The peripheral interface controller couples to the host, and the flash memory couples to the peripheral interface controller. When the peripheral interface controller detects a signal for updating the flash memory from the host, the peripheral interface controller updates the flash memory according to the update content.
It is another objective of the invention to provide a method for updating a flash memory of a peripheral device from a host. The method includes the following steps: detecting a setup signal transmitted from the host to the peripheral device; activating a loading circuit and the flash memory; idling a micro controller unit of the peripheral device, transmitting to the peripheral device an update content from the host to update the flash memory; verifying the updated content of the flash memory; and transmitting a terminate command to the peripheral device for terminating to update the flash memory and activating the micro controller unit.
It is to be understood that both the foregoing general description and the following detailed description are exemplary, and are intended to provide further explanation of the invention as claimed.